home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 November / PCWNOV07.iso / Software / Freeware / NSIS 2.29 / nsis-2.29-setup.exe / Examples / Modern UI / StartMenu.nsi < prev    next >
Encoding:
Text File  |  2007-02-23  |  3.1 KB  |  127 lines

  1. ;NSIS Modern User Interface
  2. ;Start Menu Folder Selection Example Script
  3. ;Written by Joost Verburg
  4.  
  5. ;--------------------------------
  6. ;Include Modern UI
  7.  
  8.   !include "MUI.nsh"
  9.  
  10. ;--------------------------------
  11. ;General
  12.  
  13.   ;Name and file
  14.   Name "Modern UI Test"
  15.   OutFile "StartMenu.exe"
  16.  
  17.   ;Default installation folder
  18.   InstallDir "$PROGRAMFILES\Modern UI Test"
  19.   
  20.   ;Get installation folder from registry if available
  21.   InstallDirRegKey HKCU "Software\Modern UI Test" ""
  22.  
  23.   ;Vista redirects $SMPROGRAMS to all users without this
  24.   RequestExecutionLevel admin
  25.  
  26. ;--------------------------------
  27. ;Variables
  28.  
  29.   Var MUI_TEMP
  30.   Var STARTMENU_FOLDER
  31.  
  32. ;--------------------------------
  33. ;Interface Settings
  34.  
  35.   !define MUI_ABORTWARNING
  36.  
  37. ;--------------------------------
  38. ;Pages
  39.  
  40.   !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt"
  41.   !insertmacro MUI_PAGE_COMPONENTS
  42.   !insertmacro MUI_PAGE_DIRECTORY
  43.   
  44.   ;Start Menu Folder Page Configuration
  45.   !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" 
  46.   !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Modern UI Test" 
  47.   !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
  48.   
  49.   !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
  50.   
  51.   !insertmacro MUI_PAGE_INSTFILES
  52.   
  53.   !insertmacro MUI_UNPAGE_CONFIRM
  54.   !insertmacro MUI_UNPAGE_INSTFILES
  55.  
  56. ;--------------------------------
  57. ;Languages
  58.  
  59.   !insertmacro MUI_LANGUAGE "English"
  60.  
  61. ;--------------------------------
  62. ;Installer Sections
  63.  
  64. Section "Dummy Section" SecDummy
  65.  
  66.   SetOutPath "$INSTDIR"
  67.   
  68.   ;ADD YOUR OWN FILES HERE...
  69.   
  70.   ;Store installation folder
  71.   WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR
  72.   
  73.   ;Create uninstaller
  74.   WriteUninstaller "$INSTDIR\Uninstall.exe"
  75.   
  76.   !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
  77.     
  78.     ;Create shortcuts
  79.     CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
  80.     CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
  81.   
  82.   !insertmacro MUI_STARTMENU_WRITE_END
  83.  
  84. SectionEnd
  85.  
  86. ;--------------------------------
  87. ;Descriptions
  88.  
  89.   ;Language strings
  90.   LangString DESC_SecDummy ${LANG_ENGLISH} "A test section."
  91.  
  92.   ;Assign language strings to sections
  93.   !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  94.     !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy)
  95.   !insertmacro MUI_FUNCTION_DESCRIPTION_END
  96.  
  97. ;--------------------------------
  98. ;Uninstaller Section
  99.  
  100. Section "Uninstall"
  101.  
  102.   ;ADD YOUR OWN FILES HERE...
  103.  
  104.   Delete "$INSTDIR\Uninstall.exe"
  105.  
  106.   RMDir "$INSTDIR"
  107.   
  108.   !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
  109.     
  110.   Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
  111.   
  112.   ;Delete empty start menu parent diretories
  113.   StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
  114.  
  115.   startMenuDeleteLoop:
  116.     ClearErrors
  117.     RMDir $MUI_TEMP
  118.     GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
  119.     
  120.     IfErrors startMenuDeleteLoopDone
  121.   
  122.     StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
  123.   startMenuDeleteLoopDone:
  124.  
  125.   DeleteRegKey /ifempty HKCU "Software\Modern UI Test"
  126.  
  127. SectionEnd